home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_AI / AI_076 / STARF15S.LZH / STARFAX / FDDKIT.FTQ / FDDKIT.TXT < prev    next >
Text File  |  1993-06-08  |  5KB  |  120 lines

  1. Readme zum STARFAX - 'FDDKIT'                            07.06.93
  2.  
  3. Mit dem beiliegendem BASIC Source-code sollte jeder, der etwas besser
  4. programmieren kann, in der Lage sein, seine eigenen FAX-Treiber zu
  5. erstellen. Der Quellcode kann in GFA-Basic mit 'Merge' geladen werden.
  6. Beiliegend befinden sich noch ASSEMBLER-Inline-Codes, welche in die
  7. INLINE-Zeilen (auf die Zeilen gehen und dann HELP drücken!)
  8. eingeladen werden müssen.
  9.  
  10. Das weitere Konzept ist eigentlich ganz einfach:
  11.  
  12. Zuerst wird in einem Speicherbereich die Fax-Seite als großes,
  13. üblicherweise 1728 Pixel breites, Rasterbild aufgebaut.
  14. (Das ist eigentlich für euch das schwierigste an der Sache.)
  15. Ich empfehle dafür 256 Bytes pro Rasterzeile zu verwenden.
  16. Nun muß man nur noch die Procedure 'Sicher_seite' aufrufen und
  17. als Parameter die Speicher-Adresse und Zeilenzahl der Seite angeben.
  18. Fertig! War doch nicht so kompliziert, oder?
  19.  
  20. So, nun für alle BASIC-Hasser, Assembler-Freaks, Neugierige und
  21. die, die nicht meinen GFA-Basic Sourcecode verwenden wollen, folgt
  22. nun noch eine Beschreibung der Parameter für die Assembler(Inline) -Routiene:
  23.  
  24. Die Routiene muß irgendwie das Listing eingebunden werden. Dies geschieht
  25. z.B: in GFABASIC über INLINE, im TURBO-ASSEMBLER über IBYTES 'Dateiname':
  26.  
  27.    INLINE faxdrive%,2100
  28.  
  29. Nun wird ein 5-stelliger String mit den ersten 5 Buchstaben für den
  30. Dateinamen bestimmt.
  31.  
  32.   a$="BILD_"
  33.  
  34. Nun gibt es bisher 4 Funktionen:
  35.  
  36. Funktion 1: Datei anlegen
  37. =========================
  38.  
  39. Nun ruft man den Assembler-Code mit Parameter 1 (für Datei-anlegen)
  40. und den Dateinamen-Anfang auf. Die Parameter werden auf dem STack als
  41. WORDs und LONGS übergeben. ( Die Funktionsnummer kommt _zuletzt_ auf den
  42. STack ! )
  43.  
  44.   ~C:faxdrive%( 1 ,          L:  V: a$ )
  45.                 |              |
  46. Funktionsnr. für neue Datei   LONG:Zeiger auf Dateiname
  47.  
  48. Nach dem Aufruf der Funktion ist die Datei bereits angelegt.
  49. Man braucht sich um Dateipfade etc.. _NICHT_ zu kümmern, das geschieht
  50. anhand der Datei STARCALL.SET automatisch.
  51. Diese Funktion muß immer aufgerufen werden, bevor Daten geschrieben werden.
  52.  
  53. Funktion 2: Daten schreiben
  54. ===========================
  55.  
  56. Mit Parameter 2 werden Daten einer Rastergrafik aus dem Speicher
  57. in die bestehende Datei geschrieben. Die Rastergrafik sollte
  58. 1728 Pixel breit sein, mit links und rechts ca. 64 Pixel Rand.
  59. Für den Aufbau der Seite im Speicher empfehle ich eine Breite
  60. von 256 Bytes pro Zeile (2048 Pixel).
  61.  
  62.  ~C:faxdrive%(2, L: faxbild% , 256, lines& ) !FAX-Daten sichern
  63.               |         |        |     |
  64.  Funktionsnr.-+         |        |     +--  Anzahl Raster-Zeilen
  65.                         |        |
  66. LONG: Adresse der Daten-+        +- Breite des Rasters in Bytes
  67.  
  68. Trotz Assembler-Code dauert das Codieren und Sichern einer Seite
  69. noch eine ganze Zeit. Ich emfpfehle, die zu erstellenden Seite
  70. in mehre Teilstücke zu zerlegen, und die Funktion mehrmals aufzurufen,
  71. so kann z.B. eine Ausgabe der Konvertierung in % gemacht werden, oder
  72. anderes Dargestllt werden. (Ich verändere gerne den Mauszeiger)
  73.  
  74. Funktion 3: Titel einfügen
  75. ==========================
  76.  
  77. Fügt die Datei FAX_HEAD.FAH aus dem Sende-Verzeichnis als Kopfzeile
  78. ein. Diese Funktion sollte normalerweise vor Funktion 2 ausgeführt werden.
  79.  
  80.  ~C:faxdrive%(3) !Fügt einen Titel ein
  81.  
  82. Funktion 4: Faxdatei abschließen
  83. ================================
  84.  
  85. Die mit Funktion 1 geöffnete FAX-Datei wird abgeschlossen.
  86.  
  87.  ~C:faxdrive%(4) !Close File
  88.  
  89. Funktion 5: Datei wiedereröffnen
  90. ================================
  91.  
  92. Öffnet die mit Funktion 1 zuletzt erstellte Datei erneut, wenn Sie bereits
  93. mit Funktion 4 geschlossen wurde. Für die programmierung eigener
  94. Fax-Treiber ist das sicher uninteressant, aber weil es die Funktion gibt,
  95. habe ich Sie auch dokumentiert. Ich brauchte Sie z.B. für den Calamus-
  96. Treiber.
  97.  
  98.  ~C:faxdrive%(5) !Reopen File
  99.  
  100. Zum Schluss:
  101. ============
  102.  
  103. - Der Fax-treiber ist Multi-Tos-tauglich und kann Faxe im Hintergrund
  104. erstellen. Ein Warten ist dann nicht mehr nötig.
  105. - Übrigens: ein FAX hat 1728 Pixel/Zeile bei 196 DPI, sollte 2200 Zeilen
  106. nicht überschreiten.
  107. - Für Zeichensätze empfehle ich eine Größe von ca. 16*32 Pixel, das
  108. reicht für mehr als 100 Zeichen/Zeile und mehr als 65 Zeilen.
  109. - Programmiertip: Zum Erstellen der großen FAX-Seiten sind die VDI-Raster-
  110. funktionen COPY_RASTER ganz hilfreich.
  111. - Fax-Seiten sind natürlich monochrome, also bitte 1 Bitplane!
  112. - Bitte sendet mir selbst erstellte Fax-Treiber zu, ich kann Sie dann
  113. auch anderen Usern zur Verfügung stellen. Gibt dann auch eine kleine
  114. Gegenleistung dafür.
  115.  
  116. So, das wars. Bei Fragen ruft mich doch einfach mal an.
  117.  
  118. Ingo Linkweiler (INLI)
  119.  
  120.